<!--

     Licensed to the Apache Software Foundation (ASF) under one
     or more contributor license agreements.  See the NOTICE file
     distributed with this work for additional information
     regarding copyright ownership.  The ASF licenses this file
     to you under the Apache License, Version 2.0 (the
     "License"); you may not use this file except in compliance
     with the License.  You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

     Unless required by applicable law or agreed to in writing,
     software distributed under the License is distributed on an
     "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
     KIND, either express or implied.  See the License for the
     specific language governing permissions and limitations
     under the License.

-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- **************************************************************** -->
<!-- *  PLEASE KEEP COMPLICATED EXPRESSIONS OUT OF THESE TEMPLATES, * -->
<!-- *  i.e. only iterate & print data where possible. Thanks, Jez. * -->
<!-- **************************************************************** -->

<html>
<head>
    <!-- Generated by groovydoc (2.4.7) on Thu Dec 01 22:36:12 PST 2016 -->
    <title>ServiceFacadeImpl (Moqui Framework 2.0.0)</title>
    <meta name="date" content="2016-12-01">
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <link href="../../../../groovy.ico" type="image/x-icon" rel="shortcut icon">
    <link href="../../../../groovy.ico" type="image/x-icon" rel="icon">
    <link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">

<body class="center">
<script type="text/javascript"><!--
if (location.href.indexOf('is-external=true') == -1) {
    parent.document.title="ServiceFacadeImpl (Moqui Framework 2.0.0)";
}
//-->
</script>
<noscript>
    <div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
    <!--   -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
    <!--   -->
</a>
    <ul class="navList" title="Navigation">
        <li><a href="../../../../overview-summary.html">Overview</a></li>
        <li><a href="package-summary.html">Package</a></li>
        <li class="navBarCell1Rev">Class</li>
        <li><a href="../../../../deprecated-list.html">Deprecated</a></li>
        <li><a href="../../../../index-all.html">Index</a></li>
        <li><a href="../../../../help-doc.html">Help</a></li>
    </ul>
</div>

<div class="subNav">
    <div>
        <ul class="navList">
            <li><a href="../../../../index.html?org/moqui/impl/service/ServiceFacadeImpl" target="_top">Frames</a></li>
            <li><a href="ServiceFacadeImpl.html" target="_top">No Frames</a></li>
        </ul>
    </div>
    <div>
        <ul class="subNavList">
            <li>Summary:&nbsp;</li>
            Nested&nbsp;&nbsp;&nbsp;<li><a href="#field_summary">Field</a></li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<li><a href="#constructor_summary">Constructor</a></li>&nbsp;&nbsp;&nbsp;<li><a href="#method_summary">Method</a></li>&nbsp;&nbsp;&nbsp;
        </ul>
        <ul class="subNavList">
            <li>&nbsp;|&nbsp;Detail:&nbsp;</li>
            <li><a href="#field_detail">Field</a></li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<li><a href="#constructor_detail">Constructor</a></li>&nbsp;&nbsp;&nbsp;<li><a href="#method_detail">Method</a></li>&nbsp;&nbsp;&nbsp;
        </ul>
    </div>
    <a name="skip-navbar_top">
        <!--   -->
    </a></div>
<!-- ========= END OF TOP NAVBAR ========= -->

<!-- ======== START OF CLASS DATA ======== -->
<div class="header">

    <div class="subTitle">Package: <strong>org.moqui.impl.service</strong></div>

    <h2 title="[Groovy] Class ServiceFacadeImpl" class="title">[Groovy] Class ServiceFacadeImpl</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><ul class="inheritance"></ul></li><li>org.moqui.impl.service.ServiceFacadeImpl
</ul>
<div class="description">
    <ul class="blockList">
        <li class="blockList">

            <dl>
                <dt>All Implemented Interfaces and Traits:</dt>
                <dd><a href='../../../../org/moqui/service/ServiceFacade.html' title='ServiceFacade'>ServiceFacade</a></dd>
            </dl>
            <!-- todo: direct known subclasses -->
            <hr>
            <br>
<pre>@groovy.transform.CompileStatic
class ServiceFacadeImpl
extends java.lang.Object

</pre>



          </li>
    </ul>
</div>

<div class="summary">
    <ul class="blockList">
        <li class="blockList">
        <!-- =========== NESTED CLASS SUMMARY =========== -->
        

        <!-- =========== ENUM CONSTANT SUMMARY =========== -->
        
        <!-- =========== FIELD SUMMARY =========== -->
        
            <ul class="blockList">
                <li class="blockList"><a name="field_summary"><!--   --></a>
                    <h3>Field Summary</h3>
                    <ul class="blockList">
                    <table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum constants summary table">
                        <caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
                        <tr>
                            <th class="colFirst" scope="col">Modifiers</th>
                            <th class="colLast" scope="col">Name</th>
                            <th class="colLast" scope="col">Description</th>
                        </tr>
                        
                        <tr class="altColor">
                            <td class="colFirst"><code><strong>protected&nbsp;java.util.concurrent.ConcurrentMap&lt;java.lang.String, java.util.List&lt;<a href='../../../../org/moqui/service/ServiceCallback.html' title='ServiceCallback'>ServiceCallback</a>&gt;&gt;</strong></code>&nbsp;</td>
                            <td class="colLast"><code><a href="#callbackRegistry">callbackRegistry</a></code></td>
                            <td class="colLast"></code></td>
                        </tr>
                        
                        <tr class="rowColor">
                            <td class="colFirst"><code><strong>protected&nbsp;java.util.concurrent.ExecutorService</strong></code>&nbsp;</td>
                            <td class="colLast"><code><a href="#distributedExecutorService">distributedExecutorService</a></code></td>
                            <td class="colLast">Distributed ExecutorService for async services, etc</code></td>
                        </tr>
                        
                        <tr class="altColor">
                            <td class="colFirst"><code><strong><a href='../../../../org/moqui/impl/context/ExecutionContextFactoryImpl.html'>ExecutionContextFactoryImpl</a></strong></code>&nbsp;</td>
                            <td class="colLast"><code><a href="#ecfi">ecfi</a></code></td>
                            <td class="colLast"></code></td>
                        </tr>
                        
                        <tr class="rowColor">
                            <td class="colFirst"><code><strong>protected&nbsp;java.util.List&lt;<a href='../../../../org/moqui/impl/service/EmailEcaRule.html' title='EmailEcaRule'>EmailEcaRule</a>&gt;</strong></code>&nbsp;</td>
                            <td class="colLast"><code><a href="#emecaRuleList">emecaRuleList</a></code></td>
                            <td class="colLast"></code></td>
                        </tr>
                        
                        <tr class="altColor">
                            <td class="colFirst"><code><strong>protected&nbsp;java.util.concurrent.locks.ReentrantLock</strong></code>&nbsp;</td>
                            <td class="colLast"><code><a href="#locationLoadLock">locationLoadLock</a></code></td>
                            <td class="colLast"></code></td>
                        </tr>
                        
                        <tr class="rowColor">
                            <td class="colFirst"><code><strong>protected&nbsp;static&nbsp;org.slf4j.Logger</strong></code>&nbsp;</td>
                            <td class="colLast"><code><a href="#logger">logger</a></code></td>
                            <td class="colLast"></code></td>
                        </tr>
                        
                        <tr class="altColor">
                            <td class="colFirst"><code><strong><a href='../../../../org/moqui/impl/service/RestApi.html'>RestApi</a></strong></code>&nbsp;</td>
                            <td class="colLast"><code><a href="#restApi">restApi</a></code></td>
                            <td class="colLast"></code></td>
                        </tr>
                        
                        <tr class="rowColor">
                            <td class="colFirst"><code><strong>protected&nbsp;java.util.Map&lt;java.lang.String, java.util.ArrayList&lt;<a href='../../../../org/moqui/impl/service/ServiceEcaRule.html' title='ServiceEcaRule'>ServiceEcaRule</a>&gt;&gt;</strong></code>&nbsp;</td>
                            <td class="colLast"><code><a href="#secaRulesByServiceName">secaRulesByServiceName</a></code></td>
                            <td class="colLast"></code></td>
                        </tr>
                        
                        <tr class="altColor">
                            <td class="colFirst"><code><strong>protected&nbsp;javax.cache.Cache&lt;java.lang.String, org.moqui.impl.service.ServiceDefinition&gt;</strong></code>&nbsp;</td>
                            <td class="colLast"><code><a href="#serviceLocationCache">serviceLocationCache</a></code></td>
                            <td class="colLast"></code></td>
                        </tr>
                        
                        <tr class="rowColor">
                            <td class="colFirst"><code><strong>protected&nbsp;java.util.Map&lt;java.lang.String, <a href='../../../../org/moqui/impl/service/ServiceRunner.html' title='ServiceRunner'>ServiceRunner</a>&gt;</strong></code>&nbsp;</td>
                            <td class="colLast"><code><a href="#serviceRunners">serviceRunners</a></code></td>
                            <td class="colLast"></code></td>
                        </tr>
                        
                    </table>
                   </ul>
                </li>
                
            </ul>
        

        <!-- =========== PROPERTY SUMMARY =========== -->
        

        <!-- =========== ELEMENT SUMMARY =========== -->
        

        
        <!-- ======== CONSTRUCTOR SUMMARY ======== -->
        <ul class="blockList">
                <li class="blockList"><a name="constructor_summary"><!--   --></a>
                    <h3>Constructor Summary</h3>
                    <ul class="blockList">
                    <table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructors Summary table">
                        <caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
                        <tr>
                            <th class="colFirst" scope="col">Constructor and description</th>
                        </tr>
                        
                        <tr class="altColor">
                            <td class="colFirst">
                                <code><a href="#ServiceFacadeImpl(org.moqui.impl.context.ExecutionContextFactoryImpl)">ServiceFacadeImpl</a></strong>
                                (<a href='../../../../org/moqui/impl/context/ExecutionContextFactoryImpl.html'>ExecutionContextFactoryImpl</a> ecfi)</code><br></td>
                        </tr>
                        
                    </table>
                   </ul>
              </li>
        </ul>
        

        
        <!-- ========== METHOD SUMMARY =========== -->
        <ul class="blockList">
            
            <li class="blockList"><a name="method_summary"><!--   --></a>
                    <h3>Methods Summary</h3>
                    <ul class="blockList">
                    <table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Methods Summary table">
                        <caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
                        <tr>
                            <th class="colFirst" scope="col">Type</th>
                            <th class="colLast" scope="col">Name and description</th>
                        </tr>
                        
                        <tr class="altColor">
                            <td class="colFirst"><code><a href='../../../../org/moqui/service/ServiceCallAsync.html'>ServiceCallAsync</a></strong></code></td>
                            <td class="colLast"><code><strong><a href="#async()">async</a></strong>()</code><br></td>
                        </tr>
                        
                        <tr class="rowColor">
                            <td class="colFirst"><code>java.util.Map&lt;java.lang.String, java.lang.Object&gt;</strong></code></td>
                            <td class="colLast"><code><strong><a href="#callJsonRpc(java.lang.String, java.lang.String, Map<String, Object>)">callJsonRpc</a></strong>(java.lang.String location, java.lang.String method, java.util.Map&lt;java.lang.String, java.lang.Object&gt; parameters)</code><br></td>
                        </tr>
                        
                        <tr class="altColor">
                            <td class="colFirst"><code>void</strong></code></td>
                            <td class="colLast"><code><strong><a href="#callRegisteredCallbacks(java.lang.String, Map<String, Object>, Map<String, Object>)">callRegisteredCallbacks</a></strong>(java.lang.String serviceName, java.util.Map&lt;java.lang.String, java.lang.Object&gt; context, java.util.Map&lt;java.lang.String, java.lang.Object&gt; result)</code><br></td>
                        </tr>
                        
                        <tr class="rowColor">
                            <td class="colFirst"><code>void</strong></code></td>
                            <td class="colLast"><code><strong><a href="#callRegisteredCallbacksThrowable(java.lang.String, Map<String, Object>, java.lang.Throwable)">callRegisteredCallbacksThrowable</a></strong>(java.lang.String serviceName, java.util.Map&lt;java.lang.String, java.lang.Object&gt; context, java.lang.Throwable t)</code><br></td>
                        </tr>
                        
                        <tr class="altColor">
                            <td class="colFirst"><code>void</strong></code></td>
                            <td class="colLast"><code><strong><a href="#destroy()">destroy</a></strong>()</code><br></td>
                        </tr>
                        
                        <tr class="rowColor">
                            <td class="colFirst"><code>protected&nbsp;org.moqui.util.MNode</strong></code></td>
                            <td class="colLast"><code><strong><a href="#findServiceNode(java.lang.String, java.lang.String, java.lang.String)">findServiceNode</a></strong>(java.lang.String path, java.lang.String verb, java.lang.String noun)</code><br></td>
                        </tr>
                        
                        <tr class="altColor">
                            <td class="colFirst"><code>protected&nbsp;static&nbsp;org.moqui.util.MNode</strong></code></td>
                            <td class="colLast"><code><strong><a href="#findServiceNode(org.moqui.resource.ResourceReference, java.lang.String, java.lang.String)">findServiceNode</a></strong>(org.moqui.resource.ResourceReference serviceComponentRr, java.lang.String verb, java.lang.String noun)</code><br></td>
                        </tr>
                        
                        <tr class="rowColor">
                            <td class="colFirst"><code>protected&nbsp;void</strong></code></td>
                            <td class="colLast"><code><strong><a href="#findServicesInDir(java.lang.String, org.moqui.resource.ResourceReference, Set<String>)">findServicesInDir</a></strong>(java.lang.String baseLocation, org.moqui.resource.ResourceReference dir, java.util.Set&lt;java.lang.String&gt; sns)</code><br></td>
                        </tr>
                        
                        <tr class="altColor">
                            <td class="colFirst"><code>protected&nbsp;void</strong></code></td>
                            <td class="colLast"><code><strong><a href="#findServicesInFile(java.lang.String, org.moqui.resource.ResourceReference, Set<String>)">findServicesInFile</a></strong>(java.lang.String baseLocation, org.moqui.resource.ResourceReference entryRr, java.util.Set&lt;java.lang.String&gt; sns)</code><br></td>
                        </tr>
                        
                        <tr class="rowColor">
                            <td class="colFirst"><code>java.util.List&lt;java.util.Map&gt;</strong></code></td>
                            <td class="colLast"><code><strong><a href="#getAllServiceInfo(int)">getAllServiceInfo</a></strong>(int levels)</code><br></td>
                        </tr>
                        
                        <tr class="altColor">
                            <td class="colFirst"><code><a href='../../../../org/moqui/impl/service/ScheduledJobRunner.html'>ScheduledJobRunner</a></strong></code></td>
                            <td class="colLast"><code><strong><a href="#getJobRunner()">getJobRunner</a></strong>()</code><br></td>
                        </tr>
                        
                        <tr class="rowColor">
                            <td class="colFirst"><code>java.util.Set&lt;java.lang.String&gt;</strong></code></td>
                            <td class="colLast"><code><strong><a href="#getKnownServiceNames()">getKnownServiceNames</a></strong>()</code><br></td>
                        </tr>
                        
                        <tr class="altColor">
                            <td class="colFirst"><code>int</strong></code></td>
                            <td class="colLast"><code><strong><a href="#getSecaRuleCount()">getSecaRuleCount</a></strong>()</code><br></td>
                        </tr>
                        
                        <tr class="rowColor">
                            <td class="colFirst"><code>org.moqui.impl.service.ServiceDefinition</strong></code></td>
                            <td class="colLast"><code><strong><a href="#getServiceDefinition(java.lang.String)">getServiceDefinition</a></strong>(java.lang.String serviceName)</code><br></td>
                        </tr>
                        
                        <tr class="altColor">
                            <td class="colFirst"><code><a href='../../../../org/moqui/impl/service/ServiceRunner.html'>ServiceRunner</a></strong></code></td>
                            <td class="colLast"><code><strong><a href="#getServiceRunner(java.lang.String)">getServiceRunner</a></strong>(java.lang.String type)</code><br></td>
                        </tr>
                        
                        <tr class="rowColor">
                            <td class="colFirst"><code>boolean</strong></code></td>
                            <td class="colLast"><code><strong><a href="#isEntityAutoPattern(java.lang.String)">isEntityAutoPattern</a></strong>(java.lang.String serviceName)</code><br></td>
                        </tr>
                        
                        <tr class="altColor">
                            <td class="colFirst"><code>boolean</strong></code></td>
                            <td class="colLast"><code><strong><a href="#isEntityAutoPattern(java.lang.String, java.lang.String, java.lang.String)">isEntityAutoPattern</a></strong>(java.lang.String path, java.lang.String verb, java.lang.String noun)</code><br></td>
                        </tr>
                        
                        <tr class="rowColor">
                            <td class="colFirst"><code>boolean</strong></code></td>
                            <td class="colLast"><code><strong><a href="#isServiceDefined(java.lang.String)">isServiceDefined</a></strong>(java.lang.String serviceName)</code><br></td>
                        </tr>
                        
                        <tr class="altColor">
                            <td class="colFirst"><code><a href='../../../../org/moqui/service/ServiceCallJob.html'>ServiceCallJob</a></strong></code></td>
                            <td class="colLast"><code><strong><a href="#job(java.lang.String)">job</a></strong>(java.lang.String jobName)</code><br></td>
                        </tr>
                        
                        <tr class="rowColor">
                            <td class="colFirst"><code>protected&nbsp;void</strong></code></td>
                            <td class="colLast"><code><strong><a href="#loadEmecaRulesAll()">loadEmecaRulesAll</a></strong>()</code><br></td>
                        </tr>
                        
                        <tr class="altColor">
                            <td class="colFirst"><code>protected&nbsp;void</strong></code></td>
                            <td class="colLast"><code><strong><a href="#loadEmecaRulesFile(org.moqui.resource.ResourceReference)">loadEmecaRulesFile</a></strong>(org.moqui.resource.ResourceReference rr)</code><br></td>
                        </tr>
                        
                        <tr class="rowColor">
                            <td class="colFirst"><code>protected&nbsp;void</strong></code></td>
                            <td class="colLast"><code><strong><a href="#loadSecaRulesAll()">loadSecaRulesAll</a></strong>()</code><br></td>
                        </tr>
                        
                        <tr class="altColor">
                            <td class="colFirst"><code>protected&nbsp;int</strong></code></td>
                            <td class="colLast"><code><strong><a href="#loadSecaRulesFile(org.moqui.resource.ResourceReference)">loadSecaRulesFile</a></strong>(org.moqui.resource.ResourceReference rr)</code><br></td>
                        </tr>
                        
                        <tr class="rowColor">
                            <td class="colFirst"><code>protected&nbsp;static&nbsp;java.lang.String</strong></code></td>
                            <td class="colLast"><code><strong><a href="#makeCacheKey(java.lang.String, java.lang.String, java.lang.String)">makeCacheKey</a></strong>(java.lang.String path, java.lang.String verb, java.lang.String noun)</code><br></td>
                        </tr>
                        
                        <tr class="altColor">
                            <td class="colFirst"><code>protected&nbsp;org.moqui.impl.service.ServiceDefinition</strong></code></td>
                            <td class="colLast"><code><strong><a href="#makeServiceDefinition(java.lang.String, java.lang.String, java.lang.String, java.lang.String)">makeServiceDefinition</a></strong>(java.lang.String origServiceName, java.lang.String path, java.lang.String verb, java.lang.String noun)</code><br></td>
                        </tr>
                        
                        <tr class="rowColor">
                            <td class="colFirst"><code>void</strong></code></td>
                            <td class="colLast"><code><strong><a href="#registerCallback(java.lang.String, org.moqui.service.ServiceCallback)">registerCallback</a></strong>(java.lang.String serviceName, <a href='../../../../org/moqui/service/ServiceCallback.html'>ServiceCallback</a> serviceCallback)</code><br></td>
                        </tr>
                        
                        <tr class="altColor">
                            <td class="colFirst"><code>void</strong></code></td>
                            <td class="colLast"><code><strong><a href="#registerTxSecaRules(java.lang.String, Map<String, Object>, Map<String, Object>, ArrayList<ServiceEcaRule>)">registerTxSecaRules</a></strong>(java.lang.String serviceName, java.util.Map&lt;java.lang.String, java.lang.Object&gt; parameters, java.util.Map&lt;java.lang.String, java.lang.Object&gt; results, java.util.ArrayList&lt;<a href='../../../../org/moqui/impl/service/ServiceEcaRule.html' title='ServiceEcaRule'>ServiceEcaRule</a>&gt; lst)</code><br></td>
                        </tr>
                        
                        <tr class="rowColor">
                            <td class="colFirst"><code>org.moqui.util.RestClient</strong></code></td>
                            <td class="colLast"><code><strong><a href="#rest()">rest</a></strong>()</code><br></td>
                        </tr>
                        
                        <tr class="altColor">
                            <td class="colFirst"><code>void</strong></code></td>
                            <td class="colLast"><code><strong><a href="#runEmecaRules(javax.mail.internet.MimeMessage, java.lang.String)">runEmecaRules</a></strong>(javax.mail.internet.MimeMessage message, java.lang.String emailServerId)</code><br></td>
                        </tr>
                        
                        <tr class="rowColor">
                            <td class="colFirst"><code>static&nbsp;void</strong></code></td>
                            <td class="colLast"><code><strong><a href="#runSecaRules(java.lang.String, Map<String, Object>, Map<String, Object>, java.lang.String, ArrayList<ServiceEcaRule>, org.moqui.impl.context.ExecutionContextImpl)">runSecaRules</a></strong>(java.lang.String serviceName, java.util.Map&lt;java.lang.String, java.lang.Object&gt; parameters, java.util.Map&lt;java.lang.String, java.lang.Object&gt; results, java.lang.String when, java.util.ArrayList&lt;<a href='../../../../org/moqui/impl/service/ServiceEcaRule.html' title='ServiceEcaRule'>ServiceEcaRule</a>&gt; lst, org.moqui.impl.context.ExecutionContextImpl eci)</code><br></td>
                        </tr>
                        
                        <tr class="altColor">
                            <td class="colFirst"><code>java.util.ArrayList&lt;<a href='../../../../org/moqui/impl/service/ServiceEcaRule.html' title='ServiceEcaRule'>ServiceEcaRule</a>&gt;</strong></code></td>
                            <td class="colLast"><code><strong><a href="#secaRules(java.lang.String)">secaRules</a></strong>(java.lang.String serviceName)</code><br></td>
                        </tr>
                        
                        <tr class="rowColor">
                            <td class="colFirst"><code><a href='../../../../org/moqui/service/ServiceCallSpecial.html'>ServiceCallSpecial</a></strong></code></td>
                            <td class="colLast"><code><strong><a href="#special()">special</a></strong>()</code><br></td>
                        </tr>
                        
                        <tr class="altColor">
                            <td class="colFirst"><code><a href='../../../../org/moqui/service/ServiceCallSync.html'>ServiceCallSync</a></strong></code></td>
                            <td class="colLast"><code><strong><a href="#sync()">sync</a></strong>()</code><br></td>
                        </tr>
                        
                        <tr class="rowColor">
                            <td class="colFirst"><code>void</strong></code></td>
                            <td class="colLast"><code><strong><a href="#warmCache()">warmCache</a></strong>()</code><br></td>
                        </tr>
                        
                    </table>
                   </ul>
              </li>
            
            <li class="blockList"><a name="method_summary"><!--   --></a>
                    <h3>Inherited Methods Summary</h3>
                    <ul class="blockList">
                    <table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Inherited Methods Summary table">
                        <caption><span>Inherited Methods</span><span class="tabEnd">&nbsp;</span></caption>
                        <tr>
                            <th class="colFirst" scope="col">Methods inherited from class</th>
                            <th class="colLast" scope="col">Name</th>
                        </tr>
                        
                        <tr class="altColor">
                            <td class="colFirst"><code>class java.lang.Object</strong></code></td>
                            <td class="colLast"><code>java.lang.Object#wait(long, int), java.lang.Object#wait(long), java.lang.Object#wait(), java.lang.Object#equals(java.lang.Object), java.lang.Object#toString(), java.lang.Object#hashCode(), java.lang.Object#getClass(), java.lang.Object#notify(), java.lang.Object#notifyAll()</code></td>
                        </tr>
                    </table>
                   </ul>
              </li>
                
        </ul>
        
    </li>
    </ul>
</div>

<div class="details">
    <ul class="blockList">
        <li class="blockList">
           

            
            <!-- =========== FIELD DETAIL =========== -->
            <ul class="blockList">
                <li class="blockList"><a name="field_detail">
                    <!--   -->
                </a>
                    <h3>Field Detail</h3>
                    
                        <a name="callbackRegistry"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>protected&nbsp;final&nbsp;java.util.concurrent.ConcurrentMap&lt;java.lang.String, java.util.List&lt;<a href='../../../../org/moqui/service/ServiceCallback.html' title='ServiceCallback'>ServiceCallback</a>&gt;&gt; <strong>callbackRegistry</strong></h4>
                                <p></p>
                            </li>
                        </ul>
                    
                        <a name="distributedExecutorService"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>protected&nbsp;final&nbsp;java.util.concurrent.ExecutorService <strong>distributedExecutorService</strong></h4>
                                <p> Distributed ExecutorService for async services, etc </p>
                            </li>
                        </ul>
                    
                        <a name="ecfi"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>public&nbsp;final&nbsp;<a href='../../../../org/moqui/impl/context/ExecutionContextFactoryImpl.html'>ExecutionContextFactoryImpl</a> <strong>ecfi</strong></h4>
                                <p></p>
                            </li>
                        </ul>
                    
                        <a name="emecaRuleList"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>protected&nbsp;final&nbsp;java.util.List&lt;<a href='../../../../org/moqui/impl/service/EmailEcaRule.html' title='EmailEcaRule'>EmailEcaRule</a>&gt; <strong>emecaRuleList</strong></h4>
                                <p></p>
                            </li>
                        </ul>
                    
                        <a name="locationLoadLock"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>protected&nbsp;final&nbsp;java.util.concurrent.locks.ReentrantLock <strong>locationLoadLock</strong></h4>
                                <p></p>
                            </li>
                        </ul>
                    
                        <a name="logger"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>protected&nbsp;static&nbsp;final&nbsp;org.slf4j.Logger <strong>logger</strong></h4>
                                <p></p>
                            </li>
                        </ul>
                    
                        <a name="restApi"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>public&nbsp;final&nbsp;<a href='../../../../org/moqui/impl/service/RestApi.html'>RestApi</a> <strong>restApi</strong></h4>
                                <p></p>
                            </li>
                        </ul>
                    
                        <a name="secaRulesByServiceName"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>protected&nbsp;final&nbsp;java.util.Map&lt;java.lang.String, java.util.ArrayList&lt;<a href='../../../../org/moqui/impl/service/ServiceEcaRule.html' title='ServiceEcaRule'>ServiceEcaRule</a>&gt;&gt; <strong>secaRulesByServiceName</strong></h4>
                                <p></p>
                            </li>
                        </ul>
                    
                        <a name="serviceLocationCache"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>protected&nbsp;final&nbsp;javax.cache.Cache&lt;java.lang.String, org.moqui.impl.service.ServiceDefinition&gt; <strong>serviceLocationCache</strong></h4>
                                <p></p>
                            </li>
                        </ul>
                    
                        <a name="serviceRunners"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>protected&nbsp;final&nbsp;java.util.Map&lt;java.lang.String, <a href='../../../../org/moqui/impl/service/ServiceRunner.html' title='ServiceRunner'>ServiceRunner</a>&gt; <strong>serviceRunners</strong></h4>
                                <p></p>
                            </li>
                        </ul>
                    
                </li>
            </ul>
            

            

            

            
            <!-- =========== CONSTRUCTOR DETAIL =========== -->
            <ul class="blockList">
                <li class="blockList"><a name="constructor_detail">
                    <!--   -->
                </a>
                    <h3>Constructor Detail</h3>
                    
                        <a name="ServiceFacadeImpl(org.moqui.impl.context.ExecutionContextFactoryImpl)"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4><strong>ServiceFacadeImpl</strong>(<a href='../../../../org/moqui/impl/context/ExecutionContextFactoryImpl.html'>ExecutionContextFactoryImpl</a> ecfi)</h4>
                                <p></p>
                            </li>
                        </ul>
                    
                </li>
            </ul>
            


            
            <!-- =========== METHOD DETAIL =========== -->
            <ul class="blockList">
                <li class="blockList"><a name="method_detail">
                    <!--   -->
                </a>
                    <h3>Method Detail</h3>
                    
                        <a name="async()"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>@java.lang.Override
<a href='../../../../org/moqui/service/ServiceCallAsync.html'>ServiceCallAsync</a> <strong>async</strong>()</h4>
                                <p></p>
                            </li>
                        </ul>
                    
                        <a name="callJsonRpc(java.lang.String, java.lang.String, Map<String, Object>)"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>@java.lang.Override
java.util.Map&lt;java.lang.String, java.lang.Object&gt; <strong>callJsonRpc</strong>(java.lang.String location, java.lang.String method, java.util.Map&lt;java.lang.String, java.lang.Object&gt; parameters)</h4>
                                <p></p>
                            </li>
                        </ul>
                    
                        <a name="callRegisteredCallbacks(java.lang.String, Map<String, Object>, Map<String, Object>)"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>void <strong>callRegisteredCallbacks</strong>(java.lang.String serviceName, java.util.Map&lt;java.lang.String, java.lang.Object&gt; context, java.util.Map&lt;java.lang.String, java.lang.Object&gt; result)</h4>
                                <p></p>
                            </li>
                        </ul>
                    
                        <a name="callRegisteredCallbacksThrowable(java.lang.String, Map<String, Object>, java.lang.Throwable)"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>void <strong>callRegisteredCallbacksThrowable</strong>(java.lang.String serviceName, java.util.Map&lt;java.lang.String, java.lang.Object&gt; context, java.lang.Throwable t)</h4>
                                <p></p>
                            </li>
                        </ul>
                    
                        <a name="destroy()"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>void <strong>destroy</strong>()</h4>
                                <p></p>
                            </li>
                        </ul>
                    
                        <a name="findServiceNode(java.lang.String, java.lang.String, java.lang.String)"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>protected&nbsp;org.moqui.util.MNode <strong>findServiceNode</strong>(java.lang.String path, java.lang.String verb, java.lang.String noun)</h4>
                                <p></p>
                            </li>
                        </ul>
                    
                        <a name="findServiceNode(org.moqui.resource.ResourceReference, java.lang.String, java.lang.String)"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>protected&nbsp;static&nbsp;org.moqui.util.MNode <strong>findServiceNode</strong>(org.moqui.resource.ResourceReference serviceComponentRr, java.lang.String verb, java.lang.String noun)</h4>
                                <p></p>
                            </li>
                        </ul>
                    
                        <a name="findServicesInDir(java.lang.String, org.moqui.resource.ResourceReference, Set<String>)"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>protected&nbsp;void <strong>findServicesInDir</strong>(java.lang.String baseLocation, org.moqui.resource.ResourceReference dir, java.util.Set&lt;java.lang.String&gt; sns)</h4>
                                <p></p>
                            </li>
                        </ul>
                    
                        <a name="findServicesInFile(java.lang.String, org.moqui.resource.ResourceReference, Set<String>)"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>protected&nbsp;void <strong>findServicesInFile</strong>(java.lang.String baseLocation, org.moqui.resource.ResourceReference entryRr, java.util.Set&lt;java.lang.String&gt; sns)</h4>
                                <p></p>
                            </li>
                        </ul>
                    
                        <a name="getAllServiceInfo(int)"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>java.util.List&lt;java.util.Map&gt; <strong>getAllServiceInfo</strong>(int levels)</h4>
                                <p></p>
                            </li>
                        </ul>
                    
                        <a name="getJobRunner()"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4><a href='../../../../org/moqui/impl/service/ScheduledJobRunner.html'>ScheduledJobRunner</a> <strong>getJobRunner</strong>()</h4>
                                <p></p>
                            </li>
                        </ul>
                    
                        <a name="getKnownServiceNames()"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>java.util.Set&lt;java.lang.String&gt; <strong>getKnownServiceNames</strong>()</h4>
                                <p></p>
                            </li>
                        </ul>
                    
                        <a name="getSecaRuleCount()"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>int <strong>getSecaRuleCount</strong>()</h4>
                                <p></p>
                            </li>
                        </ul>
                    
                        <a name="getServiceDefinition(java.lang.String)"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>org.moqui.impl.service.ServiceDefinition <strong>getServiceDefinition</strong>(java.lang.String serviceName)</h4>
                                <p></p>
                            </li>
                        </ul>
                    
                        <a name="getServiceRunner(java.lang.String)"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4><a href='../../../../org/moqui/impl/service/ServiceRunner.html'>ServiceRunner</a> <strong>getServiceRunner</strong>(java.lang.String type)</h4>
                                <p></p>
                            </li>
                        </ul>
                    
                        <a name="isEntityAutoPattern(java.lang.String)"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>boolean <strong>isEntityAutoPattern</strong>(java.lang.String serviceName)</h4>
                                <p></p>
                            </li>
                        </ul>
                    
                        <a name="isEntityAutoPattern(java.lang.String, java.lang.String, java.lang.String)"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>boolean <strong>isEntityAutoPattern</strong>(java.lang.String path, java.lang.String verb, java.lang.String noun)</h4>
                                <p></p>
                            </li>
                        </ul>
                    
                        <a name="isServiceDefined(java.lang.String)"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>boolean <strong>isServiceDefined</strong>(java.lang.String serviceName)</h4>
                                <p></p>
                            </li>
                        </ul>
                    
                        <a name="job(java.lang.String)"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>@java.lang.Override
<a href='../../../../org/moqui/service/ServiceCallJob.html'>ServiceCallJob</a> <strong>job</strong>(java.lang.String jobName)</h4>
                                <p></p>
                            </li>
                        </ul>
                    
                        <a name="loadEmecaRulesAll()"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>protected&nbsp;void <strong>loadEmecaRulesAll</strong>()</h4>
                                <p></p>
                            </li>
                        </ul>
                    
                        <a name="loadEmecaRulesFile(org.moqui.resource.ResourceReference)"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>protected&nbsp;void <strong>loadEmecaRulesFile</strong>(org.moqui.resource.ResourceReference rr)</h4>
                                <p></p>
                            </li>
                        </ul>
                    
                        <a name="loadSecaRulesAll()"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>protected&nbsp;void <strong>loadSecaRulesAll</strong>()</h4>
                                <p></p>
                            </li>
                        </ul>
                    
                        <a name="loadSecaRulesFile(org.moqui.resource.ResourceReference)"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>protected&nbsp;int <strong>loadSecaRulesFile</strong>(org.moqui.resource.ResourceReference rr)</h4>
                                <p></p>
                            </li>
                        </ul>
                    
                        <a name="makeCacheKey(java.lang.String, java.lang.String, java.lang.String)"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>protected&nbsp;static&nbsp;java.lang.String <strong>makeCacheKey</strong>(java.lang.String path, java.lang.String verb, java.lang.String noun)</h4>
                                <p></p>
                            </li>
                        </ul>
                    
                        <a name="makeServiceDefinition(java.lang.String, java.lang.String, java.lang.String, java.lang.String)"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>protected&nbsp;org.moqui.impl.service.ServiceDefinition <strong>makeServiceDefinition</strong>(java.lang.String origServiceName, java.lang.String path, java.lang.String verb, java.lang.String noun)</h4>
                                <p></p>
                            </li>
                        </ul>
                    
                        <a name="registerCallback(java.lang.String, org.moqui.service.ServiceCallback)"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>@java.lang.Override
void <strong>registerCallback</strong>(java.lang.String serviceName, <a href='../../../../org/moqui/service/ServiceCallback.html'>ServiceCallback</a> serviceCallback)</h4>
                                <p></p>
                            </li>
                        </ul>
                    
                        <a name="registerTxSecaRules(java.lang.String, Map<String, Object>, Map<String, Object>, ArrayList<ServiceEcaRule>)"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>void <strong>registerTxSecaRules</strong>(java.lang.String serviceName, java.util.Map&lt;java.lang.String, java.lang.Object&gt; parameters, java.util.Map&lt;java.lang.String, java.lang.Object&gt; results, java.util.ArrayList&lt;<a href='../../../../org/moqui/impl/service/ServiceEcaRule.html' title='ServiceEcaRule'>ServiceEcaRule</a>&gt; lst)</h4>
                                <p></p>
                            </li>
                        </ul>
                    
                        <a name="rest()"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>@java.lang.Override
org.moqui.util.RestClient <strong>rest</strong>()</h4>
                                <p></p>
                            </li>
                        </ul>
                    
                        <a name="runEmecaRules(javax.mail.internet.MimeMessage, java.lang.String)"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>void <strong>runEmecaRules</strong>(javax.mail.internet.MimeMessage message, java.lang.String emailServerId)</h4>
                                <p></p>
                            </li>
                        </ul>
                    
                        <a name="runSecaRules(java.lang.String, Map<String, Object>, Map<String, Object>, java.lang.String, ArrayList<ServiceEcaRule>, org.moqui.impl.context.ExecutionContextImpl)"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>static&nbsp;void <strong>runSecaRules</strong>(java.lang.String serviceName, java.util.Map&lt;java.lang.String, java.lang.Object&gt; parameters, java.util.Map&lt;java.lang.String, java.lang.Object&gt; results, java.lang.String when, java.util.ArrayList&lt;<a href='../../../../org/moqui/impl/service/ServiceEcaRule.html' title='ServiceEcaRule'>ServiceEcaRule</a>&gt; lst, org.moqui.impl.context.ExecutionContextImpl eci)</h4>
                                <p></p>
                            </li>
                        </ul>
                    
                        <a name="secaRules(java.lang.String)"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>java.util.ArrayList&lt;<a href='../../../../org/moqui/impl/service/ServiceEcaRule.html' title='ServiceEcaRule'>ServiceEcaRule</a>&gt; <strong>secaRules</strong>(java.lang.String serviceName)</h4>
                                <p></p>
                            </li>
                        </ul>
                    
                        <a name="special()"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>@java.lang.Override
<a href='../../../../org/moqui/service/ServiceCallSpecial.html'>ServiceCallSpecial</a> <strong>special</strong>()</h4>
                                <p></p>
                            </li>
                        </ul>
                    
                        <a name="sync()"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>@java.lang.Override
<a href='../../../../org/moqui/service/ServiceCallSync.html'>ServiceCallSync</a> <strong>sync</strong>()</h4>
                                <p></p>
                            </li>
                        </ul>
                    
                        <a name="warmCache()"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>void <strong>warmCache</strong>()</h4>
                                <p></p>
                            </li>
                        </ul>
                    
                </li>
            </ul>
            
        </li>
    </ul>
</div>

<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
    <!--   -->
</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
    <!--   -->
</a>
    <ul class="navList" title="Navigation">
        <li><a href="../../../../overview-summary.html">Overview</a></li>
        <li><a href="package-summary.html">Package</a></li>
        <li class="navBarCell1Rev">Class</li>
        <li><a href="../../../../deprecated-list.html">Deprecated</a></li>
        <li><a href="../../../../index-all.html">Index</a></li>
        <li><a href="../../../../help-doc.html">Help</a></li>
    </ul>
</div>

<div class="subNav">
    <div>
        <ul class="navList">
            <li><a href="../../../../index.html?org/moqui/impl/service/ServiceFacadeImpl" target="_top">Frames</a></li>
            <li><a href="ServiceFacadeImpl.html" target="_top">No Frames</a></li>
        </ul>
    </div>
    <div>
        <ul class="subNavList">
            <li>Summary:&nbsp;</li>
            Nested&nbsp;&nbsp;&nbsp;<li><a href="#field_summary">Field</a></li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<li><a href="#constructor_summary">Constructor</a></li>&nbsp;&nbsp;&nbsp;<li><a href="#method_summary">Method</a></li>&nbsp;&nbsp;&nbsp;
        </ul>
        <ul class="subNavList">
            <li>&nbsp;|&nbsp;Detail:&nbsp;</li>
            <li><a href="#field_detail">Field</a></li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<li><a href="#constructor_detail">Constructor</a></li>&nbsp;&nbsp;&nbsp;<li><a href="#method_detail">Method</a></li>&nbsp;&nbsp;&nbsp;
        </ul>
    </div>
    <p>Groovy Documentation</p>
    <a name="skip-navbar_bottom">
        <!--   -->
    </a>
    </div>
</div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>
